package labuladong;

public class ErFenFind {

    public  int  minEatingSpeed(int[] piles,int H){
        int max = getMax(piles);
        //  CKG TODO 2023/6/3: for循环　连续的空间线性搜索　这就是二分搜索可以发挥作用的标志
        //  CKG TODO 2023/6/3:  因为是要求最小的速度　所以可以使用搜索左边界的二分搜索来代替线性搜索
//        for (int i = 1; i <=max ; i++) {
//
//            if (isCanFinish(piles,i,H)){
//                return i;
//            }
//
//

    return  max;
    }




    boolean  isCanFinish(int[] piles,int speed,int H){
        int time=0;

        //  CKG TODO 2023/6/3: 这里计算总的时间　以每一堆吃完的时间相加　　我上来就想到的是香蕉数量相加　然后除以速度　　
        //  CKG TODO 2023/6/3: 这样子不对　因为题目中对吃的方式有限制　　一次最多吃完一堆　吃不完下一个小时来吃
        //   一个小时内只会吃一堆里面的香蕉  关键
        for (int n:piles) {
            time+=timeof(n,speed);
        }
        return time<=H;

    }


    int timeof(int n,int speed){
        return   (n/speed)+((n%speed>0)?1:0);
    }



    int getMax(int[] piles){
        int max=0;

        for (int n :piles) {
            max=Math.max(max,n);
        }
        return max;
    }

    public static void main(String[] args) {
        ErFenFind erFenFind = new ErFenFind();
//        erFenFind.minEatingSpeed()


    }



}
